Skip to content

**Release v0.1.0: Configuration system, enhanced testing, and version pinning behavior**#5

Merged
rahulkaushal04 merged 12 commits intomainfrom
feature/update-docs-and-add-unit-tests
Feb 11, 2026
Merged

**Release v0.1.0: Configuration system, enhanced testing, and version pinning behavior**#5
rahulkaushal04 merged 12 commits intomainfrom
feature/update-docs-and-add-unit-tests

Conversation

@rahulkaushal04
Copy link
Copy Markdown
Owner

📌 Summary

This PR prepares depkeeper v0.1.0 for its first stable release.

It introduces a configuration system, enhances test coverage and structure, updates documentation across the project, improves CLI behavior, and changes the default version pinning strategy for dependency updates.


🧩 What Does This PR Change?

🚀 Core Features

  • Added config.py with support for:

    • depkeeper.toml
    • pyproject.toml
  • ⚠️ BREAKING: Changed default version specifier from >= to ==

  • Improved CLI error handling, logging, and context management

  • Added Windows development setup script (scripts/setup_dev.ps1)

  • Updated version from 0.1.0.dev30.1.0


🧪 Testing Improvements

  • Added:

    • test_config.py
    • test_context.py
    • test_main.py
  • Expanded coverage for:

    • conflict model
    • package model
    • requirement model
    • data store
  • Introduced test markers:

    • unit
    • integration
    • e2e
    • slow
    • network
  • Refactored tests to consistent Arrange-Act-Assert structure

  • Added Copilot testing guidelines


📚 Documentation Updates

  • Updated:

    • Installation guide
    • Quickstart
    • Basic usage
    • Checking updates
    • Updating dependencies
    • CI/CD integration
    • Configuration guide
    • Troubleshooting
  • Updated README with:

    • Configuration examples
    • Version pinning explanation
  • Updated changelog under Unreleased


🐛 Bug Fixes

  • Fixed check command exit code (now succeeds even if updates are available)
  • Removed redundant decorator from check command

🎯 Motivation

This release establishes the v0.1.0 stable baseline with:

  1. Configurable behavior via project-level configuration files
  2. Deterministic dependency updates through exact version pinning
  3. Improved reliability via expanded unit testing
  4. Production-ready CLI error handling
  5. Windows development support

This provides a stable foundation for future feature expansion.


🧪 How to Test This

Configuration Testing

echo '[depkeeper]
check_conflicts = true
strict_version_matching = false' > depkeeper.toml

depkeeper check --verbose

Expected: configuration file is detected and applied.


Version Pinning Behavior

depkeeper update requests
grep "requests==" requirements.txt

Expected: dependency is pinned using ==.


Cross-Platform Setup

Windows

.\scripts\setup_dev.ps1

Linux/macOS

./scripts/setup_dev.sh

Test Suite

pytest -v -m unit
pytest --cov
pytest

All tests should pass.


✔️ Checklist

Code Quality

  • My code follows depkeeper’s style guidelines
  • I ran mypy and resolved type issues

Testing

  • I added or updated unit tests
  • All tests pass (pytest)
  • I added/updated test fixtures if needed
  • Added test markers for better organization

Documentation

  • I updated documentation (if this PR changes APIs, behaviors, or commands)
  • I updated examples (CLI / Python)
  • I added/updated changelog entry (under Unreleased)

Backwards Compatibility

  • This change is backward compatible
  • OR this PR includes a clear description of breaking changes

⚠️ Breaking Changes

Version Specifier Behavior

Default update behavior changed:

Before:

requests>=2.31.0

After:

requests==2.31.0

Users preferring minimum specifiers can:

  • Use --min-specifier (if available)
  • Manually edit requirements files after update

🔍 Related Issues

  • Establishes v0.1.0 stable release baseline
  • Implements configuration system requirements

…ure check command exits successfully even with updates available.
…utput formats and clarity in CI/CD integration
… use exact matches (==) instead of minimum (>=); enhance configuration options and troubleshooting sections.
This commit introduces a new PowerShell script, setup_dev.ps1, to facilitate the setup of the development environment for depkeeper on Windows. The script automates the creation of a virtual environment, installation of development dependencies, setup of pre-commit hooks, and runs initial tests to verify the installation. It complements the existing setup_dev.sh script for macOS/Linux, ensuring a consistent setup experience across platforms.
This commit introduces a new marker for unit tests in the  file, enhancing test categorization. Additionally, it refactors several test files to include unit test markers, improves the organization of test cases, and adds new tests for edge cases and error handling in various modules, including console, filesystem, HTTP client, logger, and version utilities. This enhances test clarity and maintainability.
This commit enhances the test suite for the  and  modules by introducing new fixtures for creating sample conflicts and packages, improving test coverage and organization. It also refactors existing tests to utilize parameterized testing for better clarity and maintainability. Additionally, the  module tests are expanded with various fixture setups to cover a wider range of scenarios, ensuring comprehensive validation of the data models.
This commit introduces new unit tests for the DepKeeperConfig and DepKeeperContext classes, enhancing test coverage and ensuring correct behavior of configuration loading, context management, and error handling. The tests validate default and custom initialization, attribute setting, and the functionality of helper methods, contributing to improved reliability and maintainability of the codebase.
…rings and updating sample data

This commit simplifies the test suite for the data store module by removing excessive documentation comments in the test functions and updating the sample package data to exclude unnecessary versions. The changes enhance readability and maintainability of the tests while ensuring comprehensive coverage of the functionality.
This commit finalizes the versioning for the depkeeper project by updating the version from 0.1.0.dev3 to 0.1.0 in both the pyproject.toml and __version__.py files, marking a stable release.
This commit introduces the tomli package with a version constraint of >=2.4.0 to both the pyproject.toml and requirements.txt files, ensuring compatibility for TOML file parsing in the project.
@codecov-commenter
Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 78.29457% with 28 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
depkeeper/cli.py 0.00% 14 Missing ⚠️
depkeeper/commands/check.py 0.00% 8 Missing ⚠️
depkeeper/commands/update.py 0.00% 6 Missing ⚠️

📢 Thoughts on this report? Let us know!

@rahulkaushal04 rahulkaushal04 merged commit 2d33185 into main Feb 11, 2026
20 checks passed
@rahulkaushal04 rahulkaushal04 deleted the feature/update-docs-and-add-unit-tests branch March 11, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants